#include <stdio.h>
struct tag{
    int tmp;
};
void pointer(char *c)
{ //这里接收传递过来的指向数组c的第一个元素的地址的同时，创建一个自动指针变量把该地址存进去
    printf("pointer:\n");
    printf("%x\n%p\n%x\n%x\n", &c, c, &c[0], &c[1]);
}
void array(char c[])
{
    printf("array:\n");
    printf("%x\n%x\n%x\n", &c, &c[0], &c[1]);
    pointer(c);
}
void print(char (*a)[10][2])
{
    char ***p = NULL;
    a = NULL;
    printf("sizeof char a[][10] = %d\n", sizeof(a));
    return;
}
void print_struct(struct tag st)
{
    printf("%p\n", &st);
}
int main()
{
    char c[10];
    printf("main:\n");
    printf("%x\n%x\n%x\n", &c, &c[0], &c[1]);
    array(c);
    char a[2][10][2];
    print(a);
    printf("struct now:\n");
    struct tag st;
    printf("%p\n", &st);
    print_struct(st);
    printf("%p\n", main);
    return 0;
}